﻿using System;
using System.Web;
using System.Web.Script.Serialization;
using System.Net;

namespace FrameworkQ.Readable.Web
{
    public class ReadableService : IHttpHandler
    {
        /// <summary>
        /// You will need to configure this handler in the web.config file of your 
        /// web and register it with IIS before being able to use it. For more information
        /// see the following link: http://go.microsoft.com/?linkid=8101007
        /// </summary>
        #region IHttpHandler Members

        public bool IsReusable
        {
            // Return false in case your Managed Handler cannot be reused for another request.
            // Usually this would be false in case you have some state information preserved per request.
            get { return true; }
        }

        public void ProcessRequest(HttpContext context)
        {
            string url = context.Request["url"];
            if ( !string.IsNullOrEmpty ( url))
            {
                Parser parser = new Parser();
                parser.Strategy = new ParagraphStrategy() { IgnoreWithWordsLessThan = 20 };
                WebClient wc = new WebClient();
                string content = wc.DownloadString(url);
                parser.Parse(content);
                SummaryResponse response = new SummaryResponse() { Title = parser.Title, Summary = parser.Text };
                JavaScriptSerializer ser = new JavaScriptSerializer();
                string json = ser.Serialize(response);
                context.Response.Clear();
                context.Response.ContentType = "application/json";
                context.Response.Write(json);
            }
        }

        #endregion
    }
}
